

#include "EntityMgr.h"

namespace ouden {

class CBaseGame
{
	
public:
	
	CBaseGame()
	{
		
		//Create instances of the game component managers
		m_EntityMgr = new CEntityMgr();
		//m_SceneMgr = new CSceneMgr();
		//m_PhysicsMgr = new CPhysicsMgr();
		
		//Create the camera
		//m_Camera = new CCamera();
		
	}
	
	~CBaseGame()
	{
		
		//Clean up the component managers
		delete m_EntityMgr;
		//delete m_SceneMgr;
		//delete m_PhysicsMgr;
		
	}
	
	//Game events
	virtual void onStart() 		{} 		//Called at the start to initialise the game
	virtual void onShutdown()	{} 		//Called on shutdown to clean up everything
	virtual void onFrame() 		{} 		//Called once per frame
	virtual void onTick() 		{} 		//Called at constant frame rate
	
protected:
	
	//Game component managers
	CEntityMgr* 			m_EntityMgr;
	//scene::CSceneMgr* 		m_SceneMgr;
	//physics::CPhysicsMgr* 	m_PhysicsMgr;
	
	//Game camera
	//CCamera* m_Camera;
	
private:
	
	
	
};

} //namespace ouden
